草庐IT

Android AsyncTask 内存泄漏

全部标签

php - 访问未定义数组索引导致的内存泄漏

我有一个脚本可以分析XML数据并用信息填充相同的数组。对于一些(巨大的)输入,脚本崩溃了。有一个foreach循环运行了大约180次没有问题(memory_get_usage()在迭代180中大约20MB,每个循环增加大约0.1MB)然后碰巧在每个新循环中,内存使用量都会翻倍。通过使用大量日志记录,我能够将问题追踪到foreach中的以下行。$fu=$f['单位']$f具有以下结构:array('name'=>'Test','value'=>'4','unit'=>'min-1',)但在某些(许多)情况下(也是在第180次迭代之前),键unit不存在于数组中。我能够通过将行替换为以下内

php - 允许的内存大小为 134217728 字节耗尽(尝试分配 18063885380364533825 字节)

我在Ubuntu14.04上托管的脚本中使用odbc_connect()连接firebird数据库查询只需要获取一行$connect=odbc_connect("EXAMPLE","GONE","fishing");$query="SELECTREMITTONAME,REMITADDRESS,REMITCITYFROMPOWHERENUM=10072";$result=odbc_exec($connect,$query);在我调用odbc_exec($connect,$query)的第3行发生错误允许的内存大小为134217728字节耗尽(尝试分配1806388538036453382

php - 是否有比 file_get_contents 占用更少内存或更有效的合并 MP3 的方法?

我需要将几个mp3文件合并为一个。我目前正在这样做:$combinedFiles="";$dir=$_POST['dir'];if($handle=opendir($dir)){while(false!==($entry=readdir($handle))){if($entry!="."&&$entry!=".."){$combinedFiles.=file_get_contents(urldecode($dir."/".$entry));}}closedir($handle);}file_put_contents("mp3/".$dir.".mp3",($combinedFiles)

PHP 内存因服务器而异

我有一个庞大的PHP脚本。我不得不做的太多了ini_set('memory_limit','3000M');set_time_limit(0);它在一台服务器上运行良好,但在另一台服务器上我得到:内存不足(分配1653342208)(试图分配71字节)在/home/writeabo/public_html/propturk/feedgenerator/simple_html_dom.phponline848两者都在来自同一主机但不同服务器的同一个包上。上面的问题解决了下面的新问题以获得赏金更新:该脚本非常大,因为它提取了一个站点并解析了252个页面的数据,其中包括60,000多张图像,

php - 改进 PHP 导入脚本的内存使用

我有一个导入CSV文件并经历数万次迭代的PHP脚本。随着脚本运行数小时,内存使用量不断增加,如果文件足够大,脚本会耗尽大量内存,以至于整个机器都停止运行。现在我使用的唯一技术是在完成后尽我所能unset()。我试图隔离使用最多内存的部分,但似乎我脚本中的每个函数都只是压在Camel背上的一根稻草,并且使用“尽可能少的内存”。那我该怎么办呢?我尝试研究基准测试/分析工具,但没有找到任何好的东西。我在Windows机器上,通过SSH连接到Linux机器。 最佳答案 好吧,既然你在寻找技术,那我就列举一些...1。不要读取文件,流式传输它

PHP 包含和内存

我希望这不是一个完全愚蠢的问题。我已经搜索了相当多的答案,但我找不到(或认出)一个恰到好处的答案。我知道PHP中的函数在实际运行之前不会被解析。因此,如果我有一个包含许多函数的大类,其中只有一个需要一个大的包含文件,如果我只在函数中包含“包含文件”(而不是在类文件的顶部),我是否可以节省内存)?我推测,即使这样可以节省内存,它也只会在调用函数之前这样做,之后直到当前脚本停止运行才会释放内存?非常感谢,罗布 最佳答案 我喜欢这句话:“让它工作,然后,如果需要,让它更快。”-一些优秀的程序员?在大多数情况下,您最好先关注良好的OOP结构

未使用偏移量的 PHP 数组内存消耗

很抱歉,如果这个问题已经在其他地方得到了回答,但我找不到它(可能是因为我很难正确地表达我的问题)。我正在使用一个双维数组,它是数据库查询的结果集。我已经设置了数组,所以数组的第一个索引是行数组的pk,所以数组看起来像......$array[345]={'id'=>345,'info1'=>'lorem','infor2'=>'ipsum'}$array[448]={'id'=>448,'info1'=>'lorem','infor2'=>'ipsum'}我的问题...我知道索引是作为整数传递的。所以,我在想(也许是错误的)它们被数组视为数字偏移量(而不是关联)。因此,如果第一个索引是

PHP 内存耗尽 (json_decode)

当我的应用程序尝试解码大型(15K~行)JSON字符串(来自CURL)时,它失败了:Allowedmemorysizeof134217728bytesexhausted(triedtoallocate91bytes)我知道我可以扩展内存限制或取消限制,但我宁愿避免这样做。我一直想知道是否有不同的方法来解决这类问题-例如将JSON字符串拆分成小块(如array_chunk)。更新为了确保问题不是由应用程序中的任何其他函数/循环引起的,我将JSON字符串提取到一个文件中并尝试直接从文件中对其进行解码(文件大小=11.8MB)。仍然失败。$y=json_decode(file_get_con

PHP ini_set 内存限制

当我们在代码中像下面这样使用ini_set时,所有其他代码的内存限制是否相同?或者只对我们添加的代码有效?ini_set('memory_limit','512M');谢谢 最佳答案 它只对写入它的文件有效。更改同一文件夹中多个php设置的最佳方法是:1。使用以下行创建名为“.htaccess”的文件php_valuememory_limit'512M'请记住,这仅在您的服务器配置允许此目录的“AllowOverride”指令时有效2。使用您的配置选项添加自己的php作为auto-prepend-file您可以在php.ini中执行

php - 如何检查 jpeg 是否适合内存?

使用imagecreatefromjpeg打开JPEG图像很容易导致fatalerror,因为所需的内存超出了memory_limit。小于100Kb的.jpg文件很容易超过2000x2000像素-打开时将占用大约20-25MB的内存。使用不同的压缩级别,“相同的”2000x2000像素图像可能会占用5MB的磁盘空间。所以我显然不能用filesize来判断是否可以安全打开。如何在打开文件之前确定文件是否适合内存,从而避免fatalerror? 最佳答案 根据多个来源,每个像素所需的内存最多为5个字节,具体取决于位深度等几个不同的因素